var timeout;//用于存储定时器的变量	
var count=0;

var token=T.p('token');
console.log("token--------------------------------"+token);

$(function () {     
    // jq validate 校验 (需要校验的字段必须加上name属性/扩充校验写在validate-methods.js中)
    $("#ajaxForm").validate({
        //重写showErrors
        showErrors: function (errorMap, errorList) {
            var msg = "";
            $.each(errorList, function (i, v) {
                //在此处用了layer的方法,显示效果更美观
            	console.log(v.element);
                layer.tips(v.message, v.element, {
                	tips:[1,'#f3857c'], 
                	time: 2000, 
                	tipsMore: true
            	});
            });
        },
        //失去焦点时验证 
        onfocusout:  function (element) { $(element).valid(); }, 
    });
    
});

var vm = new Vue({
	el:'#rrapp',
	data:{
		showList: true,
		title: null,
		bussCameraInfo: {},
		q:{},	
		serialNumber:null,//序列号，用于控制云台
		tongdao:null,//通道，用于控制云台
		token:null,//token，用于控制云台
		cameraList:[],//分页数据
		pageNumber:1,//分页页码
		page:{},//分页参数
		beginTime:null,
		endTime:null,
		videos:[],
	},
	methods: {	
		showVideoAll:function(){
			vm.showList=true;
		},
		getInfo: function(id){
			$.get(baseURL + "buss/busscamerainfo/info/"+id+"?token="+token, function(r){
                vm.bussCameraInfo = r.bussCameraInfo;
            });
		},
		//获取所有的摄像头信息
		getCameraAll:function(pageNumber){
			var data = {
				//每页多少条
				limit:8, 
				//当前页数
				page:pageNumber,
			}
			$.ajax({
				type: 'POST',
			    url: baseURL + "buss/busscamerainfo/getCameraAll?token="+token,
			    data: data,
			    success: function(r){
			    	vm.page=r.page;
					vm.cameraList=r.page.list;					
				}
			});
		},
        //动态赋予弹出层的video标签的src属性
        operation:function(serialNum){
        	//赋值给用于云台控制的序列号
        	vm.serialNumber=serialNum;
        	//初始化一些参数，通道号和token
        	getTongdao();
        	//获取摄像头的接口连接参数
        	$.get(baseURL + "sys/config/info/"+1+"?token="+token, function(r){ 
        		console.log("获取摄像头的接口连接参数--------------");
                console.log(r);
                var data={
            			accessToken:r.config.remark,
            			'source':''+serialNum+':1'
            		}
                //开启直播并初始化弹出层
                beginzb(data);            
            });              	        	
        },
        //长按按钮触发启动云台
        changan:function(num,num2){
        	//#moveLeft 表示需要监听长按事件的元素
        	timeout= setTimeout(function() {       		
        	    console.log("我长按了");
        	    //获取摄像头的接口连接参数
        	    getTongdao(num,num2);        	  
        	}, 1);//鼠标按下1毫秒后发生
        },
        //鼠标离开触发停止云台
        songkai:function(num){	
        	console.log("我松开了");
        	stopyt(num);//停止控制云台
        	clearTimeout(timeout);//清理掉定时器
        },
        //鼠标悬浮清空时间容器
        getOut:function(num){   
        	if(!isBlank(timeout)){
        		console.log("我清理了");        		
            	clearTimeout(timeout);//清理掉定时器
            	timeout=undefined;
        	}      	
        },
        //摄像页面弹出层
        shexiang:function(data){
        	layer.open({
                type: 1,
                offset: '20px',
                skin: 'layui-layer-molv',
                title: '摄像头操作管理',
                area: ['660px', '500px'],
                shade: 0.2,
                shadeClose: false,
                content: jQuery("#auditLayer"),	
                btn: ['关闭'],
                btn1: function (index) { 
                	//关闭直播
                	endzb(data);
                	//关闭弹出框
                	layer.close(index);
                },  
                /*success: function(layero, index) {
                    layerResize(index);
                }*/
            });
        },
        //翻页
        fanye:function(num){
        	console.log(vm.page);
        	if(num==0){//上一页
        		vm.pageNumber-=1;
        		if(vm.pageNumber<1){
        			alert("这已经是第一页了！！！");
        			vm.pageNumber+=1;
        			return;
        		}else{
        			vm.getCameraAll(vm.pageNumber);
        		}
        	}else if(num==1){//下一页
        		vm.pageNumber+=1;
        		if(vm.pageNumber>vm.page.totalPage){
        			alert("这已经是最后一页了！！！");
        			vm.pageNumber-=1;
        			return;
        		}else{
        			vm.getCameraAll(vm.pageNumber);
        		}
        	}else if(num==2){
        		if(isBlank(vm.pageNumber)||vm.pageNumber<1){
        			vm.pageNumber=1;
        		}
        		if(vm.pageNumber>vm.page.totalPage){
        			alert("您所输入的页码超限了！！！");
        			return;
        		}else{
        			vm.getCameraAll(vm.pageNumber);
        		}
       		
        	}
        },
        //摄像记录列表
        getVideoAll:function(num){ 
        	$("#iframe").attr("src", "./bofangqi.html");
        	//获取摄像头的接口连接参数
        	$.get(baseURL + "sys/config/info/"+1+"?token="+token, function(r){         		
                var data={
            			accessToken:r.config.remark,//令牌
            			deviceSerial:num,//序列号
            			channeNo:1,//通道号，非必选，默认为1
            			recType:0,//回放源，0-系统自动选择，1-云存储，2-本地录像。非必选，默认为0
            		}
                $.ajax({
            		type: 'POST',
            	    url: 'https://open.ys7.com/api/lapp/video/by/time',
            	    data: data,
            	    success: function(r){
            	    	console.log("根据时间获取存储文件信息------------------");
            			console.log(r);	
            			vm.showList=false; 
            			var array=new Array();
            			$.each(r.data, function(index,value){    
            				var date = new Date();
            				array.push({"begin":value.startTime,"end":value.endTime,"name":time(value.startTime)+" -- "+time(value.endTime)});			
    					}); 
            			vm.videos=array;
            			console.log(vm.videos);
            		}
            	});
            });          	
        },
        //根据时间获取存储文件信息
        queryVideo:function(){         
        		//获取摄像头的接口连接参数
            	$.get(baseURL + "sys/config/info/"+1+"?token="+token, function(r){  
            		if(!isBlank($("#beginTime").val())){
                		var times=$("#beginTime").val().split(" - "); 
                		times[0]=new Date(times[0]).getTime();
                		times[1]=new Date(times[1]).getTime();
	            		var data={
	        				accessToken:r.config.remark,//令牌
	             			deviceSerial:vm.serialNumber,//序列号
	             			channeNo:1,//通道号，非必选，默认为1
	             			startTime:times[0],//起始时间，时间格式为：1378345128000。非必选，默认为当天0点
	             			endTime:times[1],//结束时间，时间格式为：1378345128000。非必选，默认为当前时间
	             			recType:0,//回放源，0-系统自动选择，1-云存储，2-本地录像。非必选，默认为0
	                 	}
                	}else{
                		var data={
	        				accessToken:r.config.remark,//令牌
	             			deviceSerial:vm.serialNumber,//序列号
	             			channeNo:1,//通道号，非必选，默认为1
	             			recType:2,//回放源，0-系统自动选择，1-云存储，2-本地录像。非必选，默认为0
    	                 }
                	}                   
                    $.ajax({
                		type: 'POST',
                	    url: 'https://open.ys7.com/api/lapp/video/by/time',
                	    data: data,
                	    success: function(r){
                	    	console.log("根据时间获取存储文件信息------------------");
                			console.log(r);	
                			vm.showList=false;
                		}
                	});
                });
            	     	 
        }
	},
	mounted:function(){
		this.getCameraAll(this.pageNumber);		
		laydate.render({
			elem: '#beginTime',
			type: 'datetime',
			range: true,
			theme : '#3C8DBC',
			done : function(value) {
				this.beginTime = value;
			}
		});		
	},
	watch:{
		cameraList:function(){
		    this.$nextTick(function(){
		    	if(count==0){
					//初始化视频插件
					var player = new EZUIKit.EZUIPlayer('myPlayer231005653');
					//player.stop();
				}
		    	count++;
		    });
		}
	}
	
});

//控制云台
function ytxz(num){
	var data={
		accessToken:vm.token,
		deviceSerial:vm.serialNumber,
		channelNo:vm.tongdao,
		direction:num,
		speed:1
	}
	$.ajax({
		type: 'POST',
	    url: 'https://open.ys7.com/api/lapp/device/ptz/start',
	    data: data,
	    success: function(r){
	    	console.log("开始云台控制打印信息------------------");
			console.log(r);			
		}
	});
}
//停止云台
function stopyt(num){
	var data={
		accessToken:vm.token,
		deviceSerial:vm.serialNumber,
		channelNo:vm.tongdao,
		direction:num,
		speed:1
	}
	$.ajax({
		type: 'POST',
	    url: 'https://open.ys7.com/api/lapp/device/ptz/stop',
	    data: data,
	    success: function(r){
	    	console.log("停止云台控制打印信息------------------");
			console.log(r);
		}
	});
}
//开通直播功能
function beginzb(data){
	$.ajax({
		type: 'POST',
	    url: 'https://open.ys7.com/api/lapp/live/video/open',
	    data: data,
	    success: function(r){
	    	console.log("开通直播功能打印信息------------------");
			console.log(r);
			//获取摄像头的直播信息
			getshexiangtou(data);
		}
	}); 
}
//结束直播功能
function endzb(data){
	$.ajax({
		type: 'POST',
	    url: 'https://open.ys7.com/api/lapp/live/video/close',
	    data: data,
	    success: function(r){
	    	console.log("关闭直播功能打印信息------------------");
			console.log(r);
		}
	});
}
//获取摄像头的直播信息
function getshexiangtou(data){
	$.ajax({
		type: 'POST',
	    url: 'https://open.ys7.com/api/lapp/live/address/get',
	    data: data,
	    success: function(r){
	    	console.log("获取直播地址打印信息------------------");
			console.log(r);	
			//先删除video的src属性
			$('#myPlayer').removeAttr('src'); 
			//给video赋予src属性
			$('#myPlayer').attr('src',r.data[0].rtmpHd); 
			//只有当count=0时才会初始化插件
			if(count==0){
				//初始化视频插件
				var player = new EZUIKit.EZUIPlayer('myPlayer');
				player.stop();
			}					
			//摄像头弹出层
			vm.shexiang(data);
			count++;
		}
	});
}
//获取指定设备的通道信息
function getTongdao(num,num2){	
	vm.serialNumber=num2;
	//获取摄像头的接口连接参数          
    $.ajax({
    	type: 'get',
    	url: baseURL + "sys/config/info/1?token="+token,
    	async:false,
    	success: function(r){
    		console.log(r);
    		vm.token=r.config.remark;   		
    	    var data={
    	    		accessToken:r.config.remark,
    	        	deviceSerial:vm.serialNumber
    	    }
    	    $.ajax({
    	    	type: 'POST',
    	    	url: 'https://open.ys7.com/api/lapp/device/camera/list',
    	    	data: data,
    	    	async:false,
    	    	success: function(r){
    	    		console.log("获取指定设备的通道信息------------------");
    	    		console.log(r);	
    	    		vm.tongdao=r.data[0].channelNo; 
    	    		ytxz(num);
    	    		/*console.log("通道号----------------"+vm.tongdao);
    	        	console.log("序列号----------------"+vm.serialNumber);
    	        	console.log("token---------------"+vm.token);*/
    	    	}
    	    });       	        
    	}
    });                   
}

function time(time = +new Date()) {
    var date = new Date(time + 8 * 3600 * 1000); // 增加8小时
    return date.toJSON().substr(0, 19).replace('T', ' ');
}